home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 722 / 722.xpi / install.js < prev    next >
Text File  |  2010-02-12  |  4KB  |  109 lines

  1. const APP_DISPLAY_NAME = "NoScript";
  2. const APP_NAME = "noscript";
  3. const APP_PACKAGE = "/informaction/noscript";
  4. const APP_VERSION = "1.9.9.47";
  5.  
  6. const APP_PREFS_FILE="defaults/preferences/noscript.js";
  7. const APP_XPCOM_SERVICE="components/noscriptService.js";
  8. const APP_JAR_FILE = "noscript.jar";
  9. const APP_CONTENT_FOLDER = "content/noscript/";
  10. const APP_LOCALES = [
  11.   "es-ES","cs-CZ","pl-PL","ja-JP","ca-AD","pt-PT","pt-BR","de-DE","nb-NO",
  12.   "fi-FI","fr-FR","it-IT","nl-NL","tr-TR","zh-CN","ru-RU","bg-BG","ro-RO",
  13.   "uk-UA", "th-TH", "fa-IR", "el-GR", "hr-HR", "he-IL", "be-BY", "vi-VN",
  14.   "sk-SK", "hu-HU", "mk-MK", "da-DK", "sv-SE", "lt-LT", "zh-TW", 
  15.   "id-ID", "es-AR", "ar", "de-AT", "ko-KR", "et-EE", "en-GB",
  16.   "en-US"
  17.   ];
  18.  
  19. const APP_SUCCESS_MESSAGE = APP_DISPLAY_NAME + " should now be available when you restart the browser.";
  20.  
  21. var instToProfile = false;
  22.  
  23. myPerformInstall(false);
  24.  
  25. function myPerformInstall(secondTry) {
  26.   
  27.   var err;
  28.   initInstall(APP_NAME, APP_PACKAGE, APP_VERSION);
  29.   var profChrome = getFolder("Profile", "chrome");
  30.   if(!secondTry) {  
  31.     File.remove(getFolder(profChrome, APP_JAR_FILE));
  32.   }
  33.  
  34.   var chromef = instToProfile ? profChrome : getFolder("chrome");
  35.   err = addFile(APP_PACKAGE, APP_VERSION, "chrome/" + APP_JAR_FILE, chromef, null);
  36.   
  37.   if(APP_PREFS_FILE && (err == SUCCESS) ) {
  38.     const prefDirs=[
  39.       getFolder(getFolder("Profile"),"pref"),
  40.       getFolder(getFolder(getFolder("Program"),"defaults"),"pref")
  41.       ];
  42.     for(var j = prefDirs.length; j-->0;) {
  43.       var prefDir = prefDirs[j];
  44.       if(!File.exists(prefDir)) {
  45.         File.dirCreate(prefDir);
  46.       }
  47.       err = addFile(APP_PACKAGE, APP_VERSION,  APP_PREFS_FILE, prefDir, null, true);
  48.       logComment("Adding "+APP_PREFS_FILE+" in "+prefDir+": exit code = "+err);
  49.     }
  50.   }
  51.   
  52.   if(err == SUCCESS) {
  53.     var jar = getFolder(chromef, APP_JAR_FILE);
  54.     const chromeFlag = instToProfile ? PROFILE_CHROME : DELAYED_CHROME;
  55.   
  56.     registerChrome(CONTENT | chromeFlag, jar, APP_CONTENT_FOLDER);
  57.     var localesCount=APP_LOCALES.length;
  58.     if(localesCount>0) {
  59.       registerChrome(LOCALE | chromeFlag, jar, "content/noscript/"+APP_LOCALES[--localesCount]+"/");
  60.       while(localesCount-- >0) {
  61.         registerChrome(LOCALE  | chromeFlag, jar, "locale/"+APP_LOCALES[localesCount]+"/noscript/");
  62.       }
  63.     }
  64.     registerChrome(SKIN | chromeFlag, jar, "skin/classic/noscript/");
  65.     
  66.     var xpcomError = SUCCESS;
  67.     if(APP_XPCOM_SERVICE) {
  68.       var componentsDir = getFolder("Components");
  69.       err = addFile(APP_NAME, ".autoreg", getFolder("Program"), "");
  70.       xpcomError = addFile(APP_PACKAGE,APP_VERSION, APP_XPCOM_SERVICE, componentsDir, null, true);
  71.     }
  72.     
  73.     err = performInstall();
  74.     if(err == -239 && !secondTry) {
  75.       alert("Chrome registration problem, maybe transient, retrying...");
  76.       cancelInstall(err);
  77.       myPerformInstall(true);
  78.       return;
  79.     }
  80.     if(err == SUCCESS || err == 999) {
  81.       if(xpcomError != SUCCESS) {
  82.         alert("*** WARNING: PARTIAL INSTALLATION ***\n" +
  83.               "A component requiring permissions to write in the SeaMonkey program directory couldn't be installed.\n"+
  84.               "You will need either to reinstall " + APP_DISPLAY_NAME + " once as Administrator / root or install SeaMonkey in an user-writable location.");
  85.         err = xpcomError;
  86.       } else {
  87.         alert(APP_DISPLAY_NAME+" "+APP_VERSION+" has been succesfully installed in your " + 
  88.           (instToProfile ? "profile" : "browser") +
  89.           ".\n" + APP_SUCCESS_MESSAGE);
  90.       }
  91.     } else {
  92.       var msg = "Install failed!!! Error code:" + err;
  93.  
  94.       if(err == -239) {
  95.         msg += "\nThis specific error is usually transient:"
  96.           +"\nif you retry to install again, it will probably go away."
  97.       }
  98.  
  99.       alert(msg);
  100.       cancelInstall(err);
  101.     }
  102.   } else {
  103.     alert("Failed to create " +APP_JAR_FILE +"\n"
  104.       +"You probably don't have appropriate permissions \n"
  105.       +"(write access to your profile or chrome directory). \n"
  106.       +"_____________________________\nError code:" + err);
  107.     cancelInstall(err);
  108.   }
  109. }